Лабораторная работа №1
2025-09-15
Целью данной работы является приобретение практических навыков установки Rocky Linux на виртуальную машину с помощью инструмента Vagrant.
Сформируйте box-файл с дистрибутивом Rocky Linux для VirtualBox
Запустите виртуальные машины сервера и клиента и убедитесь в их работоспособности.
Внесите изменения в настройки загрузки образов виртуальных машин server и client, добавив пользователя с правами администратора и изменив названия хостов.
Скопируйте необходимые для работы с Vagrant файлы и box-файлы виртуальных машин на внешний носитель. Используя эти файлы, вы можете попробовать раз- вернуть виртуальные машины на другом компьютере.
Vagrant — это инструмент для создания и управления средами виртуальных машин в рамках единого рабочего процесса. Он позволяет автоматизировать процесс развертывания операционной системы и необходимого программного обеспечения, что значительно облегчает настройку и сопровождение виртуальных окружений. Благодаря этому Vagrant широко применяется при разработке, тестировании и обучении, так как позволяет быстро воспроизводить одинаковые среды на разных компьютерах.
Работа Vagrant основывается на нескольких ключевых понятиях. Во-первых, провайдер (provider) — это система виртуализации, с которой взаимодействует Vagrant (например, VirtualBox или VMware). Во-вторых, box-файл (или Vagrant Box) — это образ виртуальной машины с уже установленной операционной системой, который используется как основа для создания новых виртуальных машин. Третьим важным элементом является Vagrantfile — конфигурационный файл на языке Ruby, в котором задаются параметры виртуальной машины: используемый box-файл, сетевые настройки, ресурсы и другие параметры.
Дополнительно для управления версиями и типами провайдеров может использоваться HCL-файл (HashiCorp Configuration Language). Он описывает метаданные установки и облегчает работу с различными образами.
Для работы с Vagrant предусмотрен набор команд, среди которых:
vagrant init — создание шаблонного файла конфигурации;
vagrant up — запуск виртуальной машины;
vagrant halt — остановка виртуальной машины;
vagrant reload — перезагрузка с применением новых настроек;
vagrant destroy — удаление виртуальной машины.
Для начала лабораторной работы создаю в диске С рабочий каталог work1, в ней подкаталог antoychubekova, и в покаталоге подкаталоги vagrant, packer.
Созание рабочего каталога и подкаталогов
В созданном рабочем каталоге в подкаталоге packer размещаю образ варианта операционной системы Rocky Linux, Rocky-9.4-x86_64-minimal.iso.
Добавление образа ОС
В подкаталоге packer помещаю файл vagrant-rocky.pkr.hcl — специальный файл с описанием метаданных по установке дистрибутива на виртуальную машину. Реактирую этот файл как показано в туисе.
Редактирование подкаталога packer
В подкаталоге packer создаю подкаталог http с файлом ks.cfg — определяет настройки для установки дистрибутива, которые пользователь обычно вводит вручную, в частности настройки языка интерфейса, языковые настройки клавиатуры, тайм-зону, сетевые настройки и т.п.
Редактирование подкаталога packer и http
В подкаталоге vagrant помещаю файл Vagrantfile — файл с конфигурацией запуска виртуальных машин — сервера и клиента, с текстом данные в туисе.
Редактирование подкаталога vagrant
В подкаталоге vagrant помещаю файл Makefile — набор инструкций для программы make по работе с Vagrant, с текстом данные в туисе.
Редактирование подкаталога vagrant
В этом же рабочем каталоге в подкаталоге vagrant создаю каталог provision с подкаталогами default, server и client, в которых будут размещаться скрипты, изменяющие настройки внутреннего окружения базового (общего) образа виртуальной машины, сервера или клиента соответственно.
Редактирование подкаталога vagrant
В каталогах default, server и client разместите заранее подготовленный скрипт-заглушку 01-dummy.sh (скрипт дан в туисе).
Редактирование подкаталога vagrant
В каталоге default размещаю заранее подготовленный скрипт 01-user.sh по изменению названия виртуальной машины.
Редактирование подкаталога vagrant
В каталоге default размещаю заранее подготовленный скрипт 01-hostname.sh по изменению названия виртуальной машины.
Редактирование подкаталога vagrant
В каталоге server размещаю заранее подготовленный скрипт 02-forward.sh.
Редактирование подкаталога vagrant
В каталоге client размещаю заранее подготовленный скрипт 01-routing.sh.
Редактирование подкаталога vagrant
Используя FAR, перехожу в созданный рабочий каталог с проектом. В этом же каталоге размещаю файл packer.exe. И ввожу команду для начала автоматической установки образа операционной системы Rocky Linux в VirtualBox и последующего формирования box-файла с дистрибутивом Rocky Linux для VirtualBox: packer.exe init vagrant-rocky.pkr.hcl.
Начало формирования box-файла
Далее ввожу команду: packer.exe build vagrant-rocky.pkr.hcl.
Начало формирования box-файла
Процесс установки образа ОС в VirtualBox и последующего формирования box-файла. По окончании процесса в рабочем каталоге сформировался box-файл с названием vagrant-virtualbox-rocky-10-x86_64.box.
Процесс формирования box-файла
Процесс формирования box-файла
Процесс формирования box-файла
Для регистрации образа виртуальной машины в vagrant в командной строке ввожу: vagrant box add rockylinux10 vagrant-virtualbox-rocky-10-x86_64.box.
Регистрации образа виртуальной машины в vagrant
Для запуска виртуальной машины Server ввожу в консоли vagrant up server.
Запуска виртуальной машины Server
Для запуска виртуальной машины Client ввожу в консоли vagrant up client.
Запуска виртуальной машины Client
Мы видим, что запуск обеих виртуальных машин прошёл успешно, логинюсь под пользователем vagrant с паролем vagrant в графическом окружении.
Логин в Server
Логин в Clientr
Подключаюсь к серверу из консоли, введя:vagrant ssh server, при запроск ввожу пароль vagrant.
Подключение к серверу
Перехожу к пользователю antoychubekova.
Переход к пользователю antoychubekova
Отлогиниваюсь.
Выход из пользователя antoychubekova
Выполняю тоже самое для клиента.
Подключение к клиенту
Переход к пользователю antoychubekova
Выход из пользователя antoychubekova
Выключаю обе виртуальные машины.
Выключение ВМ
Для отработки созданных скриптов во время загрузки виртуальных машин убедимся, что в конфигурационном файле Vagrantfile до строк с конфигурацией сервера имеется следующая запись:
Common configuration
config.vm.provision “common user”,
type: “shell”,
preserve_order: true,
path: “provision/default/01-user.sh”
config.vm.provision “common hostname”,
type: “shell”,
preserve_order: true,
run: “always”,
path: “provision/default/01-hostname.sh”
У меня в Vagrant файле все прописано.
Выключение ВМ
Убедимся, что в терминале приглашение отображается в виде antoychubekova@server.antoychubekova.net на сервере и в виде antoychubekova@client.antoychubekova.net на клиенте. Это видно на предыущих рисунках
После выключения виртуальных машин скопирую необходимые для работы с Vagrant файлы и box-файлы виртуальных машин на в другой каталог ОС. Используя эти файлы, я могу развернуть виртуальные машины на другом компьютере.
Vagrant
В ходе выполнения лабораторной работы №1 я приобрела практические навыки установки Rocky Linux на виртуальную машину с помощью инструмента Vagrant.